package com.flamezebra.kotlin

// if/ else if: 双分支条件判断，if、else if、else是互斥关系
// range: 判断某个值是否在一个范围中，配合in一起使用: in A..B。如果判断不在某个范围内，则使用!in: !in A..B
// when: 相当于Java中的switch，效率比if高，如果有else if的分支，建议都用when来替代： when(key){ 1->"1" 2->"2"}
fun main() {
    var a = 4
    // if /else
    if(a>9){
        println("a > 9")
    } else {
        println("a <= 9")
    }

    // range
    if(a !in 9..100){
        println("a not in 9..100")
    } else {
        println("a in 9..100")
    }

    // when可以直接做判断，类似于Java中的switch
    when(a){
        1->println("when 1")
        2->println("when 2")
        3->println("when 3")
        10->println("when 10")
        else->{     // 匿名函数，Lambda表达式
            println("Unknown a variable")
        }
    }

    // when还可以作为一个表达式，返回相应的值
    var age:Any = when(a){
        1->1
        2->2
        3->3
        10->10
        else->{     // 匿名函数，Lambda表达式
            -1
        }
    }
    println(age)
}